🤖 refactor: remove plan subagent auto-handoff#3033
Conversation
|
@codex review |
8843ab7 to
6e2c2b6
Compare
|
@codex review |
6e2c2b6 to
3a7546c
Compare
|
@codex review |
3a7546c to
22b8eaa
Compare
|
@codex review |
|
@codex review |
22b8eaa to
3f80680
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3f8068019b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please take another look. |
3f80680 to
bb69d48
Compare
There was a problem hiding this comment.
💡 Codex Review
mux/src/node/services/taskService.ts
Lines 3076 to 3080 in bb69d48
This path now always pushes plan-like tasks into awaiting_report recovery without first checking whether event.parts already contains a successful propose_plan result, so legacy/in-flight plan-like subagent tasks (e.g. after upgrading with existing tasks) can get stuck in a loop where they are repeatedly told to call propose_plan and never finalize or clean up. Before this change, a successful propose_plan stream-end had a dedicated terminal path; removing it without a replacement leaves affected tasks non-terminating.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please take another look. |
bb69d48 to
4709f2c
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4709f2c0a5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4709f2c to
e3dcf9d
Compare
|
@codex review Please take another look. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e3dcf9da6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please take another look. |
e3dcf9d to
56f491a
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 56f491a3de
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please take another look. |
56f491a to
cfa04b9
Compare
|
Codex Review: Didn't find any major issues. Chef's kiss. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Remove plan-mode subagent auto-handoff after propose_plan, drop the executor-routing settings and backend router, reject plan-like task creation, and update related docs/stories/tests. --- _Generated with `mux` • Model: `openai:gpt-5.4` • Thinking: `high` • Cost: `$2.78`_ <!-- mux-attribution: model=openai:gpt-5.4 thinking=high costs=2.78 -->
|
@codex review Please take another look. |
cfa04b9 to
351c772
Compare
|
Codex Review: Didn't find any major issues. Breezy! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Remove plan-mode subagent auto-handoff after
propose_plan, along with the executor-routing settings and backend router that supported it.Background
Plan auto-handoff originally let plan-mode subagents compact into a plan and continue under
execororchestrator. In practice it now collides with grouped task workflows: planning-only best-of batches can silently turn into implementation work. Removing the feature restores a clearer boundary: planning stays top-level, and task subagents stay implementation-oriented.Implementation
taskServicestream-end handoff path that compacted history, switched agents, and posted syntheticImplement the plan/ orchestrator kickoff messagesplanagent non-runnable as a subagent again and added a task creation guard that rejects any plan-like subagent, including custom agents that inherit fromplanValidation
bun test src/common/types/tasks.test.tsbun test src/node/services/taskService.test.tsmake static-checkRisks
Low-to-moderate. This intentionally removes an existing subagent workflow, so users relying on plan subagents that automatically continue into implementation will need to do planning in a top-level workspace instead. The change reduces surprising execution fan-out, and the new creation-time rejection keeps custom plan-like subagents from falling into an unsupported half-working state.
Generated with
mux• Model:openai:gpt-5.4• Thinking:high• Cost:$2.78